<?php
	require_once PATH_OBJECT.'dataObject.php';
	
class dataObject_produit extends dataObject
{
 	
	/* @desc    Identifiant du produit
     * @var     int
     */
    public $_IDENTIFIANT_PROD = 0;
	
	
	/* @desc    Identifiant du produit
     * @var     int
     */
    public $_CODE_PROD = '';
	
	
	/* @desc    Identifiant du produit
     * @var     int
     */
    public $_LIBELLE_PROD = '';
	
	
	/* @desc    Identifiant du produit
     * @var     int
     */
    public $_DATE_DEBUT_PROD = '';
	
	
	/* @desc    Identifiant du produit
     * @var     int
     */
    public $_DATE_FIN_PROD = '';
	
	
	/* @desc    Identifiant du produit
     * @var     int
     */
    public $_IDENTIFIANT_OFFRE  = 0;
	

    
	public function __construct( $iId=0 )
    {
       parent::__construct();

       if ( $iId != 0 )
       {
            $sQuery = "SELECT   *   /*+ dataObject_produit::__construct */  
                       FROM produit 
            		   WHERE Identifiant_produit = ".$iId." ORDER BY Libelle_produit";
            
            $aRows =  self::$_oConnexion->query($sQuery);
			$aRow = $aRows[0];
                 
			$this->_IDENTIFIANT_PROD = $iId;
			$this->_CODE_PROD = $aRow["Code_produit"];
			$this->_LIBELLE_PROD = $aRow["Libelle_produit"];
			$this->_DATE_DEBUT_PROD = self::showDate($aRow["Date_debut_produit"]);
			$this->_DATE_FIN_PROD = self::showDate($aRow["Date_fin_produit"]);
			$this->_IDENTIFIANT_OFFRE  = $aRow["Identifiant_offre"];
		
       }
    }
    /**
     * récupere la table produit selon le(s) criter(s) précisés ou pas 
	 */
    function produit_select( $sCritere = null )
    {
        $aRow = false;
    	$sQuery = "SELECT   *    
                   FROM produit 
            	   WHERE 1=1 
            	   {$sCritere}";
        $aRow =  self::$_oConnexion->query($sQuery);

        return $aRow;
    }
    
	public function produit_getListProduitOuvert($idOffre, $sDateLimite)
    {
        $aRow = false;
    	$sCritere = " AND (Date_fin_produit is NULL or Date_fin_produit >= ".self::$_oConnexion->date($sDateLimite).")
    				 AND Identifiant_offre = $idOffre";
    				 
        $aRow =  $this->produit_select ($sCritere);
        
        return $aRow;
    }
    
  	/**
     * Rechercher si le produit sélectionné a des garanties optionnelles
     */
	public function getProduitGarantieOptionnelle($idContrat)
    {
    	$aRow = false;
        if($idContrat !=null || $idContrat != '')
        {
    		$sCritere = "SELECT distinct /* getProduitGarantieOptionnelle */
    						p.Identifiant_produit,	 
    						p.Code_produit , 
    						p.Libelle_produit 
    				 FROM garantiesouscrite garsous , 
    				 	  garantie gar, 
    				 	  produit p
    				WHERE garsous.Identifiant_contrat = ".$idContrat." 
    				  	AND garsous.Identifiant_garantie = gar.Identifiant_garantie 
    				  	AND gar.Identifiant_produit = p.Identifiant_produit
    				  	AND Type_garantie = 'P' ";
    	
        	$aRow =  self::$_oConnexion->query($sCritere);
        }

        if(!empty($aRow))
        	return $aRow[0]['Identifiant_produit'];
        else return 0;
    }
   
	public function produit_getListGarantieObligatoire($idProduit)
    {
     	$sQuery = "SELECT distinct Identifiant_garantie
    				FROM garantie 
    				WHERE Identifiant_produit = ".$idProduit.
     				" AND Type_garantie = 'B' ";
    				 
     	$aRow =  self::$_oConnexion->query($sQuery);
        
        return $aRow;
    }
    
    public function produit_getListGarantieOptionnelle($idProduit)
    {
    	if($idProduit != null || $idProduit != '')
    	{
     	$sQuery = "SELECT Identifiant_garantie, Libelle_garantie
    				FROM garantie 
    				WHERE Identifiant_produit = ".$idProduit.
     				" AND Type_garantie = 'P' ";
    				 
     	$aRow =  self::$_oConnexion->query($sQuery);
        
        return $aRow;
    	} 
    	else return false;
    }
    
	public function produit_isGarantieOptionnelleExist($idProduit)
    {
    	$aRow == false;
    	if($idProduit != null )
    	{
	     	$sQuery = "SELECT Identifiant_garantie
	    				FROM garantie 
	    				WHERE Identifiant_produit = ".$idProduit."
	    				AND Type_garantie = 'P' ";
	    				 
	     	$aRow =  self::$_oConnexion->query($sQuery);
    	}
        if(!empty($aRow))
        	return true;
        else return false;
    }
}
?>